package com.mzy.linear_struct.代码随想录.贪心;

import javax.xml.transform.Result;

/**
 * @Author: mizy3
 * @Date: 2024/08/15/上午12:16
 * @Description:
 */
public class Pro53最大子数组和 {
    public int maxSubArray(int[] nums) {
        // [-2,1,-3,4,-1,2,1,-5,4]
        // 贪心解法
        // 当我遇到的下一个数加上我直接的值变成负数时，那我与其继续让他向后，不如直接从新的位置开始重新累加
        // 如果错过了最大值怎么办，我们使用ans来记录最大值

        int ans = Integer.MIN_VALUE;
        int num = 0;
        for (int i = 0; i < nums.length; i++) {
            num += nums[i];
            if (num > ans) {
                ans = num;
            }
            if (num < 0) {
                num = 0;
            }
        }
        return ans;
    }
}
